package dataAccess;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
 

import bussinesObjetcs.NproductoBean;

public class NproductoDAO {
//	ConnectionDB connectionDB;
	private PreparedStatement consultaproducto, insertaproducto, updateproducto;
	private Connection connection;
	
	public NproductoDAO(){
		
	}
	
	public NproductoDAO(Connection connection){
		this.connection = connection;
	}
	
	public Connection getConnection(){
		return connection;
	}
	
	public void setConnection(Connection connection){
		   this.connection = connection;
		}
	
	public ArrayList<NproductoBean> getNprdouctoList() {	
	    ArrayList<NproductoBean> productoList = new ArrayList<NproductoBean>();
	    try {
	         consultaproducto = connection.prepareStatement("SELECT * FROM files.nproducto");	   
	         // obtain list of producto
	         synchronized(consultaproducto) {
	            ResultSet results = consultaproducto.executeQuery();
	            // get rows data{
	            while (results.next()) {
		           NproductoBean producto = new NproductoBean();
		           
		           producto.setIdproducto(results.getString("idproducto"));
		           producto.setNombreproducto(results.getString("nombreproducto"));
		           producto.setCatgrupo(results.getString("catgrupo"));
		           producto.setDesproducto(results.getString("desproducto"));
		           producto.setPrecioproducto(results.getString("precioproducto"));
		           producto.setStatusproducto(results.getString("statusproducto"));
		          
		           productoList.add(producto);
	            }
	        }
	        consultaproducto.close();
	    } catch(SQLException sqle){
			 System.out.println(sqle);
		}	   
	    return productoList;
   }


public NproductoBean searchProducto(String idproducto) {	
	    NproductoBean producto = null;
	    try {
	         consultaproducto = connection.prepareStatement("SELECT * FROM files.nproducto WHERE idproducto = ?");	   
	         consultaproducto.setString(1, idproducto);
	         // obtain producto
	         synchronized(consultaproducto) {
	            ResultSet results = consultaproducto.executeQuery();
	            // get rows data{
		  		  
	            while (results.next()) {	            	
		           producto = new NproductoBean();
		           
		           producto.setIdproducto(results.getString("idproducto"));
		           producto.setNombreproducto(results.getString("nombre"));
		           producto.setCatgrupo(results.getString("catgrupo"));
		           producto.setDesproducto(results.getString("desproducto"));
		           producto.setPrecioproducto(results.getString("precioproducto"));
		           producto.setStatusproducto(results.getString("statusproducto"));
	            }
	        }
	        consultaproducto.close();
	    } catch(SQLException sqle){
			 System.out.println(sqle);
		}	   
	    return producto;
   }
 public void addProd (NproductoBean producto)  {
	 try {
	   insertaproducto = connection.prepareStatement("INSERT INTO files.nproducto VALUES(?,?,?,?,?,?)");
	   synchronized(insertaproducto) {
		   
		   
		   insertaproducto.setString(1, producto.getIdproducto());
		   insertaproducto.setString(2, producto.getNombreproducto());
		   insertaproducto.setString(3, producto.getCatgrupo());
		   insertaproducto.setString(4, producto.getDesproducto());
		   insertaproducto.setString(5, producto.getPrecioproducto());
		   insertaproducto.setString(6, producto.getStatusproducto());
		   insertaproducto.executeUpdate();
	   }
	   insertaproducto.close();
	 } catch(SQLException sqle){
		 System.out.println(sqle);
	 }
	   
   }
 	public NproductoBean updateProducto(NproductoBean producto) {	
	    try {
	    	updateproducto = connection.prepareStatement("UPDATE files.nproducto SET nombreproducto =?,catgrupo=?,desproducto=?,precioproducto=?,statusproducto=? WHERE idproducto = ?");	   
	    	// obteniendo producto
	    	synchronized(updateproducto) {
	    		// get rows data{
          
	    	   updateproducto.setString(6, producto.getIdproducto());
	    	   updateproducto.setString(1, producto.getNombreproducto());
	    	   updateproducto.setString(2, producto.getCatgrupo());
	    	   updateproducto.setString(3, producto.getDesproducto());
	    	   updateproducto.setString(4, producto.getPrecioproducto());
	    	   updateproducto.setString(5, producto.getStatusproducto());
	    	   updateproducto.executeUpdate();
	    	}
	    	updateproducto.close();
	    } catch(SQLException sqle){
	    	System.out.println(sqle);
	    }	   
	    return producto;
 	}

}




